Installation

Running the MSI installer is all that is required to install the controls for development. Initially the controls will be licensed on a time-limited trial basis until a license key is registered through the evaluation splash page.

After installation, the DLLs are made available to the list of assemblies in Visual Studio, from here the controls can be added to the VS toolbar by right clicking in the Toolbox and choosing "Add/Remove items..." and from there selecting the controls in the dialog list.

Referencing Keyoti Assemblies (DLLs)

The installer includes current version DLLs for .NET CLR 1, 2 and 4. These can be found in the subfolders under the install directory. It is important to understand which set of DLLs you are referencing. For example if you reference the .NET 4 DLLs, then the licenses.licx line should correspond to that, see below.

The exact DLLs that you reference will depend on what you are doing;

Standard:
.NET Core 3 (and .NET 5+) - reference Keyoti.RapidSpell.NETCore.DLL (from the .NET5(Core)_DLLs folder)
.NET 2, 3 or 3.5 - reference Keyoti.RapidSpell.NET2.DLL (from the .NET2_DLLs folder)
.NET 4 - reference Keyoti.RapidSpell.NET4.DLL (from the .NET4_DLLs folder)

TX Text Control support:
Reference Keyoti.RapidSpell.NET2.TXSupportv1x.DLL (from the 3rd Party DLLs folder) (from the .NET2_DLLs folder)

Infragistics support:
Reference Keyoti.RapidSpell.InfUTEditorSupport2.vX.Y.DLL (from the 3rd Party DLLs folder), and Keyoti.RapidSpell.NET2.DLL (from the .NET2_DLLs folder)

Other 3rd Party controls:
As 'Standard' above with any support classes we prescribe.

Licensing

With .NET Core and .NET 5+

.NET Core does not currently support licenses.licx or lc.exe. Therefore to license the DLL please call:

Keyoti.RapidSpell.CoreLicensing.SetLicenseKey("<license key>");

With regular .NET Framework

The controls, components and classes are licensed using the .NET licensing framework. Fundamental to this is the requirement that a file "licenses.licx" is compiled with the project. The licenses.licx files specifies class names and their assemblies, that need referencing. It is important that the assembly name (see below) matches the name of the assembly that the project references. Eg. if referencing Keyoti.RapidSpell.NET2.DLL then the assembly name in the licenses.licx must be "Keyoti.RapidSpell.NET2".

Registering The License Key

Either click "Register" in the blue licensing dialog shown when running an unlicensed application, or run the registration application (Control-Register.exe) located under the '.NETx_DLLs' folder (choose the same folder as the DLLs you are referencing). Any applications using RapidSpell must subsequently be fully rebuilt (Rebuild Solution) to embed the key properly.

TFS and other build server users: When using TFS, the build server needs the key registered under the TFSSERVICE user. To do that, use Control-Register.exe from under \Program Files\Keyoti Inc\RapidSpell Desktop .Net\.Net4_DLLs\
This requires Keyoti.RapidSpell.NET4.dll to be in the same folder when run.
The simplest way to do this is to install RapidSpell on the server, but it's not required, the EXE and DLL can be copied over. Then use "Run As..." on Control-Register and choose TFSSERVICE.

Information for build servers running under the system account
If you find you’re unable to use “Run As…” for the local system account then please follow these instructions;

Download PSTools (from SysInternals, owned by Microsoft) and extract PSexec.exe to a folder on the machine.

Download from TechNet

Download from Keyoti

Open the CMD prompt using “Run as Administrator” and open the directory containing PSexec.exe

Type;

psexec -i -s cmd.exe 

(-i is for interactive, -s is to run as system)

Then launch Control-Register.exe from the new CMD window, or launch it from the Psexec command instead of CMD.

Visual Studio

A licenses.licx file is created (or appended to) when any licensed control is dragged onto the design surface. (The licenses.licx file must be in the project that makes the executable.) However, if the controls are used directly in code, or if the RapidSpellChecker class is used directly then Visual Studio will not create/ append the licenses.licx file. In this case create or open one in the project directory (using Notepad for example - make sure it is called "licenses.licx" and not "licenses.licx.txt"). In the licenses.licx file add one of these lines:


If referencing our .NET 2 DLL
Keyoti.RapidSpell.RapidSpellChecker, Keyoti.RapidSpell.NET2

If referencing our .NET 4 DLL
Keyoti.RapidSpell.RapidSpellChecker, Keyoti.RapidSpell.NET4

which follows the standard format

<Class name>, <Assembly name>

If the class exists in a different assembly, such as the Keyoti.RapidSpell.TXSupportv12.DLL, then modify the assembly name, and if the control used is RapidSpellDialog for example then modify the class name, eg.

Keyoti.RapidSpell.RapidSpellDialog, Keyoti.RapidSpell.TXSupportv12

After modifying the licenses.licx file it is important to rebuild the solution. The licenses.licx file can contain multiple lines specifying different classes and assemblies.

Note: if a licenses.licx file is copied into the project directory, it must also be added to the VS project.

Note: the licenses.licx file must be in the project that creates the executable, if RapidSpell is used in a usercontrol, the licenses.licx file must still be added to the exe project that uses the usercontrol.

Command-line compiler

lc.exe is used to compile a text file (like licenses.licx) into a resource, from there the resource can be compiled into the final executable, please see the .NET documentation and Non Visual Studio examples for help.

lc /target:Form.exe /complist:licenses.licx /i:Keyoti.RapidSpell.DLL


csc /res:Form1.exe.licenses /target:exe /reference:Keyoti.RapidSpell.DLL Form1.cs

Deployment

RapidSpell Desktop complies with the "XCopy deployment" standard which means that deployment is simply a matter of ensuring that the RapidSpell Desktop DLLs used are deployed with the executable or installed into the GAC. The DLLs that you choose to deploy is dependent on which controls you have used, typically only Keyoti.RapidSpell(.NETX).DLL need to be deployed.

Special considerations are:

-Some 3rd party support controls reside in other assemblies, if these assemblies are referred to in your project, then they must be deployed also.

-Any ".dict" files used (eg. via the DictFilePath properties) must be deployed also, unless they are embedded resources (see the dictionaries section).

-The .NET licensing mechanism does NOT allow the name of the executable to be changed after it has been compiled - doing so will invalidate all licenses.